USB applications often require a data transfer to or from an endpoint in a USB device that is larger than the maximum data packet size for the endpoint. Typically, this requires a multi-packet data transfer, which can cause a Central Processing Unit (CPU) in the USB device to process a large amount of overhead information upon transmission of each data packet. During the CPU processing, a USB host may issue a new request to the same endpoint, to which the USB device must reply with a “not-acknowledged (NAK) handshake” if the USB device is not ready to handle the new request. Returning the “NAK handshake” can reduce bus utilization, especially for full-speed “OUT” endpoints, as the data packet must be re-transmitted.